From 78d47ae32c86a6a92f9d2274c49824d12477b6cc Mon Sep 17 00:00:00 2001 From: oliskoli Date: Sun, 15 Jul 2007 17:09:52 +0000 Subject: [PATCH] Add fields PATH_SPEED_KPH and PATH_SPEED_MPH to xcsv. --- gpsbabel/csv_util.c | 12 ++++++++++++ gpsbabel/defs.h | 9 +++++++++ gpsbabel/xmldoc/chapters/styles.xml | 24 ++++++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/gpsbabel/csv_util.c b/gpsbabel/csv_util.c index e3389376f..3f87bc9ee 100644 --- a/gpsbabel/csv_util.c +++ b/gpsbabel/csv_util.c @@ -911,6 +911,12 @@ xcsv_parse_val(const char *s, waypoint *wpt, const field_map_t *fmp) if (strcmp(fmp->key, "PATH_SPEED") == 0) { WAYPT_SET(wpt, speed, atof(s)); } else + if (strcmp(fmp->key, "PATH_SPEED_KPH") == 0) { + WAYPT_SET(wpt, speed, KPH_TO_MPS(atof(s))); + } else + if (strcmp(fmp->key, "PATH_SPEED_MPH") == 0) { + WAYPT_SET(wpt, speed, MPH_TO_MPS(atof(s))); + } else if (strcmp(fmp->key, "PATH_COURSE") == 0) { WAYPT_SET(wpt, course, atof(s)); } else @@ -1420,6 +1426,12 @@ xcsv_waypt_pr(const waypoint *wpt) if (strcmp(fmp->key, "PATH_SPEED") == 0) { writebuff( buff, fmp->printfc, wpt->speed ); } else + if (strcmp(fmp->key, "PATH_SPEED_KPH") == 0) { + writebuff( buff, fmp->printfc, MPS_TO_KPH(wpt->speed)); + } else + if (strcmp(fmp->key, "PATH_SPEED_MPH") == 0) { + writebuff( buff, fmp->printfc, MPS_TO_MPH(wpt->speed)); + } else if (strcmp(fmp->key, "PATH_COURSE") == 0) { writebuff( buff, fmp->printfc, wpt->course ); } else diff --git a/gpsbabel/defs.h b/gpsbabel/defs.h index c62d0718b..9759d34b7 100644 --- a/gpsbabel/defs.h +++ b/gpsbabel/defs.h @@ -64,6 +64,15 @@ #define SECONDS_PER_HOUR (60L*60) #define SECONDS_PER_DAY (24L*60*60) +/* meters/second to kilometers/hour */ +#define MPS_TO_KPH(a) ((double)(a)*SECONDS_PER_HOUR/1000) +/* meters/second to miles/hour */ +#define MPS_TO_MPH(a) (METERS_TO_MILES(a) * SECONDS_PER_HOUR) +/* kilometers/hour to meters/second */ +#define KPH_TO_MPS(a) ((double)(a)*1000/SECONDS_PER_HOUR) +/* miles/hour to meters/second */ +#define MPH_TO_MPS(a) (MILES_TO_METERS(a) / SECONDS_PER_HOUR) + /* * Snprintf is in SUS (so it's in most UNIX-like substance) and it's in * C99 (albeit with slightly different semantics) but it isn't in C89. diff --git a/gpsbabel/xmldoc/chapters/styles.xml b/gpsbabel/xmldoc/chapters/styles.xml index 199e91b6a..503555096 100644 --- a/gpsbabel/xmldoc/chapters/styles.xml +++ b/gpsbabel/xmldoc/chapters/styles.xml @@ -1057,6 +1057,30 @@ example: +
+PATH_SPEED_KPH + + Like PATH_SPEED but means kilometers per hour. + + +example: + + PATH_SPEED_KPH,"","%.1f" + +
+ +
+PATH_SPEED_MPH + + Like PATH_SPEED but means miles per hour. + + +example: + + PATH_SPEED_MPH,"","%.1f" + +
+
PATH_COURSE -- 2.30.2